package reflect;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Scanner;

public class ReflectDemo1 {
    public static void main(String[] args)  {
        //Class c = String.class;//获取String的类对象
        //Class c= ArrayList.class;
        //Class c= LinkedList.class;
        //Class c=Class.forName("java.long.String");
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入类名：");
        String className=scan.nextLine();
        try {
            Class c=Class.forName(className);
        //Class c=Class.forName(className);
        String name=c.getName();
        System.out.println(name);//获取其表示类的完全名
        name=c.getSimpleName();
        System.out.println(name);//只获取类名

        Package pack=c.getPackage();//获取包信息
        String packname=pack.getName();
        System.out.println(packname);
        //获取当前Class对象表示的所有公开方法（包括超类继承的）
        Method[] methods=c.getMethods();
        System.out.println("一共有"+methods.length+"个方法");
        //遍历所有方法，输出方法名
        for(Method m:methods){
            System.out.println(m.getName());
        }
        } catch (ClassNotFoundException e) {
        e.printStackTrace();
        }
    }
}
